/**
 * 复制文本到剪贴板
 * @param {string|HTMLElement} content 文本内容或DOM元素
 * @param {Function} [callback] 复制成功回调
 * @returns {boolean} 是否复制成功
 */
export function copyToClipboard(content, callback) {
  let promise = null

  if (typeof callback !== 'function') {
    promise = new Promise((resolve, reject) => {
      callback = function (result) {
        if (typeof result === 'object' && result !== null) {
          reject(result)
        } else {
          resolve(result)
        }
      }
    })
  }

  try {
    // 处理DOM元素情况
    const text = typeof content === 'string' ? content : content.innerText || content.textContent

    // 创建临时元素
    const textarea = document.createElement('textarea')
    textarea.value = text
    textarea.style.position = 'fixed'
    document.body.appendChild(textarea)

    // 执行复制
    textarea.select()
    const result = document.execCommand('copy')
    document.body.removeChild(textarea)

    // 回调处理
    if (result) {
      callback(text)
    } else {
      callback({ err: '错误', result })
    }
    return promise
  } catch (e) {
    console.error('复制失败:', e)
    callback({ err: e })
    return promise
  }
}
